
/*
 * @Description: 存放关于日志和调试信息的预制方法。
 */
export class FrameCollection<FrameType> {

    protected frames: FrameType[];

    constructor(...frames: FrameType[]) {
        this.frames = frames;
    }

    /**
     * @description: 清空栈帧集合中的数据，用于手动清空堆栈。
     * 
     * **注意！：**
     * 
     * - 一般来说不需要手动清空。
     * 
     */
    public clear(): void {
        this.frames.length = 0;
    }

    /**
     * @description: 向堆栈中压入新的栈帧。
     * @param {FrameType} frame 添加的栈帧。
     */
    public push(frame: FrameType): void {
        this.frames.push(frame);
    }
}